Multiple threads can execute in a computer. A “thread” refers to a processing unit associated with software. In a multiprocessing environment, multiple threads can execute in parallel. A multiprocessing system can include multiple processors, or alternatively, a multiprocessing system can include a processor having multiple processor cores.
An issue associated with parallel execution of threads in a computer is maintaining coordination among tasks executed by the threads. For example, it may be desired that all data be read from a particular source before any of the data in the source is modified by a subsequent write operation—otherwise, data corruption may occur during the read process.